package regular;
import java.util.ArrayList;

class VertexD {
	String name;
	ArrayList<EdgeD> neighbors;
	String stateName;
	boolean visit;

	public VertexD(String name) {
		this.name = name;		
		neighbors = new ArrayList<EdgeD>();
		this.visit = false;
	}
	
	public VertexD(String name, String stateName) {
		this.name = name;
		this.stateName = stateName;
		neighbors = new ArrayList<EdgeD>();
		this.visit = false;
	}

//	public VertexD(String name, String stateName, ArrayList<BoolFormula> label) {
//		this.name = name;
//		this.label = label;
//		this.stateName = stateName;
//		neighbors = new ArrayList<EdgeD>();
//		this.visit = false;
//	}
//
//	public ArrayList<BoolFormula> Ld() {
//		return this.label;
//	}

	@Override
	public boolean equals(Object obj) {
		boolean check = false;
		if (obj == null)
			return false;
		else if (obj == this)
			return true;
		else if (obj instanceof VertexD && obj.getClass() == this.getClass()) {
			final VertexD t = (VertexD) obj;
			check = this.name.equals(t.name);
		}
		return check;
	}

	@Override
	public int hashCode() {
		int hash = 7;
		hash = (37 * hash) + (null == this.name ? 0 : this.name.hashCode());
		return hash;
	}

}

class EdgeD {
	String target;

	public EdgeD(String target) {
		this.target = target;
	}
}